package com.ruoyi.common.utils.biz;

import cn.hutool.core.map.MapUtil;

import java.util.HashMap;
import java.util.Map;

/**
 * 结果保存时的模块和子模块出处
 *
 */
public class ResultSaveModule {

    /**数据收集  开始*/
    public static final String COLLECT = "COLLECT";                                 //数据收集
    /**数据收集  结束*/

    /**大气模型构建  开始*/
    public static final String MODEL_BUILD = "MODEL_BUILD";                         //大气模型构建
    /**大气模型构建  结束*/

    /**高精度模型构建  开始*/
    public static final String MODEL_HIGH_PRECISION = "MODEL_HIGH_PRECISION";       //高精度模型构建
    public static final String MODEL_HIGH_ESTIMATE = "MODEL_HIGH_ESTIMATE";         //高精度模型构建 模型计算
    public static final String MODEL_HIGH_BUILD = "MODEL_HIGH_BUILD";             //高精度模型构建 模型构建
    public static final String MODEL_HIGH_ABOUT = "MODEL_HIGH_ABOUT";             //高精度模型构建 性能相关

    public static final String MODEL_HIGH_MSESTIMATE = "MODEL_HIGH_MSESTIMATE";         //高精度模型构建 融合计算
    public static final String MODEL_HIGH_MSBUILD = "MODEL_HIGH_MSBUILD";             //高精度模型构建 融合构建
    public static final String MODEL_HIGH_MSABOUT = "MODEL_HIGH_MSABOUT";             //高精度模型构建 融合相关

    /**高精度模型构建  结束*/

    /**大气密度反演  开始*/
    public static final String DENSITY_INVERT = "DENSITY_INVERT";                   //大气密度反演
    public static final String DENSITY_INVERT_TLE = "DENSITY_INVERT_TLE";           //大气密度反演 - TLE反演
    public static final String DENSITY_INVERT_GPS = "DENSITY_INVERT_GPS";           //大气密度反演 - GPS反演
    public static final String DENSITY_INVERT_ORBIT = "DENSITY_INVERT_ORBIT";       //大气密度反演 - 最小定轨误差反演
    /**大气密度反演  结束*/

    /**数据融合  开始*/
    public static final String DATA_FUSION = "DATA_FUSION";                         //数据融合
    public static final String DATA_FUSION_GRID = "DATA_FUSION_GRID";               //数据融合 - 经纬度格网化
    public static final String DATA_FUSION_TIME_GRID = "DATA_FUSION_TIME_GRID";     //数据融合 - 地方时格网化
    public static final String DATA_FUSION_WIND = "DATA_FUSION_WIND";               //数据融合 - 大气风场数据融合
    public static final String DATA_FUSION_DENSITY = "DATA_FUSION_DENSITY";         //数据融合 - 大气风场密度数据融合
    /**数据融合  结束*/

    /**模型检验评估  开始*/
    public static final String MODEL_ASSESS = "MODEL_ASSESS";                       //模型检验评估
    public static final String MODEL_ASSESS_ALT = "MODEL_ASSESS_ALT";               //模型检验评估 - 不同高度条件下大气模型适应性评估
    public static final String MODEL_ASSESS_DIF_SPACE = "MODEL_ASSESS_DIF_SPACE";   //模型检验评估 - 不同空间环境条件大气模型评适应性估
    public static final String MODEL_ASSESS_SPACE = "MODEL_ASSESS_SPACE";           //模型检验评估 - 空间环境指数预报评估
    /**模型检验评估  结束*/

    /**多模型计算  开始*/
    public static final String MODEL_CAL = "MODEL_CAL";                             //多模型计算
    public static final String MODEL_CAL_DENSITY = "MODEL_CAL_DENSITY";             //多模型计算 - 大气密度计算
    public static final String MODEL_CAL_CORRECT = "MODEL_CAL_CORRECT";             //多模型计算 - 动态修正模型计算
    public static final String MODEL_CAL_SOLAR = "MODEL_CAL_SOLAR";                 //多模型计算 - 太阳辐射指数预报
    public static final String MODEL_CAL_MAG = "MODEL_CAL_MAG";                     //多模型计算 - 地磁指数预报
    public static final String MODEL_CAL_PARAM = "MODEL_CAL_PARAM";                 //多模型计算 - 空间环境参数制备
    public static final String MODEL_CAL_MODEL = "MODEL_CAL_MODEL";                 //多模型计算 - 高精度模型计算
    public static final String MODEL_CAL_REVISE = "MODEL_CAL_MODEL";                //多模型计算 - 模型修订计算
    /**多模型计算  结束*/

    /**模型动态修正  开始*/
    public static final String MODEL_CORRECT = "MODEL_CORRECT";                     //模型动态修正
    public static final String MODEL_CORRECT_CAL = "MODEL_CORRECT_CAL";             //模型动态修正 - 动态修正系数计算评估
    public static final String MODEL_CORRECT_PREDICT = "MODEL_CORRECT_PREDICT";     //模型动态修正 - 动态修正系数建模预报
    /**模型动态修正  结束*/

    /**风场模型修订  开始*/
    public static final String MODEL_REVISE = "MODEL_REVISE";                       //风场模型修订
    public static final String MODEL_REVISE_GRID = "MODEL_REVISE_GRID";             //风场模型修订 - 指定格网数据展示
    public static final String MODEL_REVISE_RETRIEVAL = "MODEL_REVISE_RETRIEVAL";   //风场模型修订 - 风场反演
    public static final String MODEL_REVISE_CHARACTER = "MODEL_REVISE_CHARACTER";   //风场模型修订 - 特征计算
    public static final String MODEL_REVISE_REVISE = "MODEL_REVISE_REVISE";         //风场模型修订 - 模型修订计算
    public static final String MODEL_REVISE_HWM07 = "MODEL_REVISE_HWM07";           //风场模型修订 - HWM07模型计算
    /**风场模型修订  结束*/

    /**典型任务评估  开始*/
    public static final String TASK_ASSESS = "TASK_ASSESS";                         //典型任务评估
    public static final String TASK_ASSESS_LAUNCH = "TASK_ASSESS_LAUNCH";           //典型任务评估 - 航天发射任务大气模型评估
    public static final String TASK_ASSESS_ON = "TASK_ASSESS_ON";                   //典型任务模型评估-在轨-交会-陨落
    public static final String TASK_ASSESS_OTHER = "TASK_ASSESS_OTHER";             //典型任务模型评估-其他航天任务大气模型评估

    /**典型任务评估  结束*/

    /**典型轨道应用  开始*/
    public static final String TRACK_APPLY = "TRACK_APPLY";                         //典型轨道应用
    public static final String TRACK_APPLY_LOW_SOLAR = "TRACK_APPLY_LOW_SOLAR";     //典型轨道应用 - 低轨航天器指数预报 - 太阳
    public static final String TRACK_APPLY_LOW_MAG = "TRACK_APPLY_LOW_MAG";         //典型轨道应用 - 低轨航天器指数预报 - 地磁
    public static final String TRACK_APPLY_MAN = "TRACK_APPLY_MAN";                 //典型轨道应用 - 载人航天飞行器轨道大气环境监测评估

    public static final String TRACK_APPLY_DG = "TRACK_APPLY_DG";                   //典型轨道大气应用-不同磁暴期大气模式预报效应评估
    public static final String TRACK_APPLY_FORCAST = "TRACK_APPLY_FORCAST";         //典型轨道大气应用-不同磁暴期大气模式定轨效应评估

    public static final String TRACK_APPLY_INFLUENCE = "TRACK_APPLY_INFLUENCE";         //典型轨道大气应用-不同地磁水平下大气模式预报效应评估
    public static final String TRACK_APPLY_DEEP = "TRACK_APPLY_DEEP";               //典型轨道大气应用-近地-深空航天器轨道大气模型评估

    /**典型轨道应用  结束*/


    public static final Map<String,String> nameMap = MapUtil.builder(new HashMap<String,String>())
            .put(DATA_FUSION,"数据融合")
            .put(DATA_FUSION_GRID,"经纬度格网化")
            .put(DATA_FUSION_TIME_GRID,"地方时格网化")
            .put(DATA_FUSION_WIND,"大气风场数据融合")
            .put(DATA_FUSION_DENSITY,"大气风场密度数据融合")

            .put(MODEL_ASSESS,"模型检验评估")
            .put(MODEL_ASSESS_ALT,"不同高度条件下大气模型适应性评估")
            .put(MODEL_ASSESS_DIF_SPACE,"不同空间环境条件大气模型评适应性估")
            .put(MODEL_ASSESS_SPACE,"空间环境指数预报评估")

            .put(MODEL_CORRECT,"模型动态修正")
            .put(MODEL_CORRECT_CAL,"动态修正系数计算评估")
            .put(MODEL_CORRECT_PREDICT,"动态修正系数建模预报")

            .put(MODEL_REVISE,"风场模型修订")
            .put(MODEL_REVISE_GRID,"指定格网数据展示")
            .put(MODEL_REVISE_RETRIEVAL,"风场反演")
            .put(MODEL_REVISE_CHARACTER,"特征计算")
            .put(MODEL_REVISE_REVISE,"模型修订计算")
            .put(MODEL_REVISE_HWM07,"HWM07模型计算")

            .put(TASK_ASSESS,"典型任务评估")
            .put(TASK_ASSESS_LAUNCH,"航天发射任务大气模型评估")
            .put(TASK_ASSESS_ON,"在轨-交会-陨落")
            .put(TASK_ASSESS_OTHER,"其他航天任务大气模型评估")


            .put(TRACK_APPLY,"典型轨道应用")
            .put(TRACK_APPLY_LOW_SOLAR,"低轨航天器指数预报-太阳")
            .put(TRACK_APPLY_LOW_MAG,"低轨航天器指数预报-地磁")
            .put(TRACK_APPLY_MAN,"载人航天飞行器轨道大气环境监测评估")
            .put(TRACK_APPLY_DG,"不同磁暴期大气模式预报效应评估")
            .put(TRACK_APPLY_FORCAST,"不同磁暴期大气模式定轨效应评估")
            .put(TRACK_APPLY_INFLUENCE,"不同地磁水平下大气模式预报效应评估")
            .put(TRACK_APPLY_DEEP,"近地/深空航天器轨道大气模型评估")

            .put(DENSITY_INVERT,"大气密度反演")
            .put(DENSITY_INVERT_TLE,"TLE反演")
            .put(DENSITY_INVERT_GPS,"GPS反演")
            .put(DENSITY_INVERT_ORBIT,"最小定轨误差反演")

            .put(MODEL_CAL,"多模型计算与预报")
            .put(MODEL_CAL_CORRECT,"动态修正模型计算")
            .put(MODEL_CAL_SOLAR,"太阳辐射指数预报")
            .put(MODEL_CAL_MAG,"地磁指数预报")
            .put(MODEL_CAL_PARAM,"空间环境参数制备")
            .put(MODEL_CAL_REVISE,"多模型计算-模型修订计算")

            .put(MODEL_HIGH_PRECISION,"高精度模型构建")
            .put(MODEL_HIGH_BUILD,"模型构建")
            .put(MODEL_HIGH_ESTIMATE,"模型计算")
            .put(MODEL_HIGH_ABOUT,"模型相关")
            .put(MODEL_HIGH_MSABOUT,"融合相关")
            .put(MODEL_HIGH_MSESTIMATE,"融合计算")
            .put(MODEL_HIGH_MSBUILD,"融合构建")

            .build();


    public static String getSubmoduleName (String code){
        return nameMap.get(code);
    }


}
